USE [influenza]
GO

/****** Object:  StoredProcedure [dbo].[SP_RptTPxEntidadExt]    Script Date: 04/16/2010 17:46:29 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[SP_RptTPxEntidadExt]
@param varchar(500)
as
Begin
declare
   @qry varchar(8000)
  
 
  if @param=1
  begin
		  set @qry='
		Select ([INF A]+[NEGATIVO]+[INF AH1N1 PMD]+[NO ADECUADO]+[PARAINFLUENZA 1]+[PARAINFLUENZA 2]+[PARAINFLUENZA 3]+[PARAINFLUENZA 4]+
		[B]+[DUPLICADA]+[ETIQUETA DE MUESTRA ILEGIBLE]+[DATOS ERRONEOS]+[DIAS DE TRANSITO]+
		[MUESTRA CONTAMINADA]+[MUESTRA DERRAMADA]+[MUESTRA ENVIADA POR ERROR]+
		[MUESTRA INSUFICIENTE]+[MUESTRAS MEZCLADAS]+[NO HAY REACTIVOS]+[NO LLEGO MUESTRA]+[TUBO ROTO]+
		[TUBO VACIO]+[NO CUMPLE CON CASO]+[DIAS DE EVOLUCIÓN]+[NO USMI]+[VSR]+[VSR A]+[VSR B]+[MUESTRA INADECUADA]
		) as ''TOTAL'',[INF A],[NEGATIVO],[INF AH1N1 PMD],
		[NO ADECUADO],([PARAINFLUENZA 1]+[PARAINFLUENZA 2]+[PARAINFLUENZA 3]+[PARAINFLUENZA 4]) as ''PARAINFLUENZA'',
		[B],[DUPLICADA],([ETIQUETA DE MUESTRA ILEGIBLE]+[DATOS ERRONEOS]+[DIAS DE TRANSITO]+
		[MUESTRA CONTAMINADA]+[MUESTRA DERRAMADA]+[MUESTRA ENVIADA POR ERROR]+
		[MUESTRA INSUFICIENTE]+[MUESTRAS MEZCLADAS]+[NO HAY REACTIVOS]+[NO LLEGO MUESTRA]+[TUBO ROTO]+
		[TUBO VACIO]+[NO CUMPLE CON CASO]+[DIAS DE EVOLUCIÓN]+[NO USMI]) as ''RECHAZADOS'',
		([VSR]+[VSR A]+[VSR B]) as ''VSR'',[MUESTRA INADECUADA]
		 from(  
		  select i.entidad,f.resultados as ''Resultado''
		from dat_generales a
		inner join dat_registro c on(a.id_principal=c.id_generales)
		inner join dat_laboratorio b on (b.id_generales=a.id_principal)
		inner join aux_muestras as d on (b.id_principal = d.id_dat_laboratorio)
		left join aux_laboratorio_res e on (d.id_dat_laboratorio=e.id_dat_laboratorio and c.id_principal=e.id_dat_registro)
		left join cat_lab_resultados f on (f.id_resultados=e.nResultado)
		inner join dbo.Unidades_todas h on (c.id_unidad=h.id_unidad)
		inner join Catalogos..entidades_inegi i on (h.id_entidad=i.id_entidad)
		where b.nEstudio ='+@param+' and f.id_resultados is not NULL and a.nNacionalidad=2
		UNION ALL
		select i.entidad,g.rechazo as ''Resultado''
		from dat_generales a
		inner join dat_registro c on(a.id_principal=c.id_generales)
		inner join dat_laboratorio b on (b.id_generales=a.id_principal)
		inner join aux_muestras as d on (b.id_principal = d.id_dat_laboratorio)
		left join aux_laboratorio_res e on (d.id_dat_laboratorio=e.id_dat_laboratorio and c.id_principal=e.id_dat_registro)
		left join cat_lab_rechazo	g on (g.id_rechazo=b.nRechazo)
		inner join dbo.Unidades_todas h on (c.id_unidad=h.id_unidad)
		inner join Catalogos..entidades_inegi i on (h.id_entidad=i.id_entidad)
		where b.nEstudio ='+@param+' and b.nRechazo is not NULL and a.nNacionalidad=2) pvt
		PIVOT (count (entidad) for Resultado in([INF AH1N1 PMD],
		[B],[NEGATIVO],[NO ADECUADO],[PARAINFLUENZA 1],[PARAINFLUENZA 2],
		[PARAINFLUENZA 3],[VSR],[INF A],[RECHAZADA],[VSR A],[VSR B],[PARAINFLUENZA 4],
		[ETIQUETA DE MUESTRA ILEGIBLE],[DATOS ERRONEOS],[DIAS DE TRANSITO],[DUPLICADA],
		[MUESTRA CONTAMINADA],[MUESTRA DERRAMADA],[MUESTRA ENVIADA POR ERROR],[MUESTRA INADECUADA],
		[MUESTRA INSUFICIENTE],[MUESTRAS MEZCLADAS],[NO HAY REACTIVOS],[NO LLEGO MUESTRA],
		[TUBO ROTO],[TUBO VACIO],[NO CUMPLE CON CASO],[DIAS DE EVOLUCIÓN],[NO USMI]
		)) as child  '
   end
  else if @param=2
   begin
	set @qry='
		select ([INF A]+[NEGATIVO]+[INF AH1N1 PMD]+[NO ADECUADO]+[B]+[A H1]+[A H3]+
		[NO SUBTIPIFICADO]+[ETIQUETA DE MUESTRA ILEGIBLE]+[DATOS ERRONEOS]+[DIAS DE TRANSITO]+[DUPLICADA]+
		[MUESTRA CONTAMINADA]+[MUESTRA DERRAMADA]+[MUESTRA ENVIADA POR ERROR]+[MUESTRA INADECUADA]+
		[MUESTRA INSUFICIENTE]+[MUESTRAS MEZCLADAS]+[NO HAY REACTIVOS]+[NO LLEGO MUESTRA]+
		[TUBO ROTO]+[TUBO VACIO]+[NO CUMPLE CON CASO]+[DIAS DE EVOLUCIÓN]+[NO USMI]) as ''TOTAL'',
		[INF A],[NEGATIVO],[INF AH1N1 PMD],[NO ADECUADO],[B],[A H1],[A H3],
		[NO SUBTIPIFICADO],
		([ETIQUETA DE MUESTRA ILEGIBLE]+[DATOS ERRONEOS]+[DIAS DE TRANSITO]+
		[MUESTRA CONTAMINADA]+[MUESTRA DERRAMADA]+[MUESTRA ENVIADA POR ERROR]+
		[MUESTRA INSUFICIENTE]+[MUESTRAS MEZCLADAS]+[NO HAY REACTIVOS]+[NO LLEGO MUESTRA]+[TUBO ROTO]+
		[TUBO VACIO]+[NO CUMPLE CON CASO]+[DIAS DE EVOLUCIÓN]+[NO USMI]) as ''RECHAZADOS'' from(
		select i.entidad,f.resultados as ''Resultado''
		from dat_generales a
		inner join dat_registro c on(a.id_principal=c.id_generales)
		inner join dat_laboratorio b on (b.id_generales=a.id_principal)
		inner join aux_muestras as d on (b.id_principal = d.id_dat_laboratorio)
		left join aux_laboratorio_res e on (d.id_dat_laboratorio=e.id_dat_laboratorio and c.id_principal=e.id_dat_registro)
		left join cat_lab_resultados f on (f.id_resultados=e.nResultado)
		inner join dbo.Unidades_todas h on (c.id_unidad=h.id_unidad)
		inner join Catalogos..entidades_inegi i on (h.id_entidad=i.id_entidad)
		where b.nEstudio ='+@param+' and f.id_resultados is not NULL and a.nNacionalidad=2
	UNION ALL
		select i.entidad,g.rechazo as ''Resultado''
		from dat_generales a
		inner join dat_registro c on(a.id_principal=c.id_generales)
		inner join dat_laboratorio b on (b.id_generales=a.id_principal)
		inner join aux_muestras as d on (b.id_principal = d.id_dat_laboratorio)
		left join aux_laboratorio_res e on (d.id_dat_laboratorio=e.id_dat_laboratorio and c.id_principal=e.id_dat_registro)
		left join cat_lab_rechazo	g on (g.id_rechazo=b.nRechazo)
		inner join dbo.Unidades_todas h on (c.id_unidad=h.id_unidad)
		inner join Catalogos..entidades_inegi i on (h.id_entidad=i.id_entidad)
		where b.nEstudio ='+@param+' and b.nRechazo is not NULL and a.nNacionalidad=2)pvt 
		PIVOT (count (entidad) for Resultado in([INF A],[NEGATIVO],[INF AH1N1 PMD],[NO ADECUADO],[B],[A H1],[A H3],
		[NO SUBTIPIFICADO],[ETIQUETA DE MUESTRA ILEGIBLE],[DATOS ERRONEOS],[DIAS DE TRANSITO],[DUPLICADA],
		[MUESTRA CONTAMINADA],[MUESTRA DERRAMADA],[MUESTRA ENVIADA POR ERROR],[MUESTRA INADECUADA],
		[MUESTRA INSUFICIENTE],[MUESTRAS MEZCLADAS],[NO HAY REACTIVOS],[NO LLEGO MUESTRA],
		[TUBO ROTO],[TUBO VACIO],[NO CUMPLE CON CASO],[DIAS DE EVOLUCIÓN],[NO USMI])) as child'  
   end
  else if @param=3
   begin   
     set @qry='
     select ([INF A]+[NEGATIVO]+[INF AH1N1 PMD]+[NO ADECUADO]+[B]+[A H1]+[A H3]+[A H5]+
		[NO SUBTIPIFICADO]+[ADENOVIRUS]+[ENTEROV//RHINOVIRUS]+[METAPNEUMOVIRUS]+[NO AMPLIFICO]+[PARAINFLUENZA 1]+[PARAINFLUENZA 2]+
		[PARAINFLUENZA 3]+[PARAINFLUENZA 4]+[VSR A]+[CORONA NL63]+[CORONA 229E]+[CORONA HKU1]+[CORONA OC43]+[CORONA SARS]+
		[ETIQUETA DE MUESTRA ILEGIBLE]+[DATOS ERRONEOS]+[DIAS DE TRANSITO]+[DUPLICADA]+
		[MUESTRA CONTAMINADA]+[MUESTRA DERRAMADA]+[MUESTRA ENVIADA POR ERROR]+[MUESTRA INADECUADA]+
		[MUESTRA INSUFICIENTE]+[MUESTRAS MEZCLADAS]+[NO HAY REACTIVOS]+[NO LLEGO MUESTRA]+
		[TUBO ROTO]+[TUBO VACIO]+[NO CUMPLE CON CASO]+[DIAS DE EVOLUCIÓN]+[NO USMI]) as ''TOTAL'',
		[INF A],[NEGATIVO],[INF AH1N1 PMD],[NO ADECUADO],([PARAINFLUENZA 1]+[PARAINFLUENZA 2]+[PARAINFLUENZA 3]+[PARAINFLUENZA 4]) as ''PARAINFLUENZA'',[B],[A H1],[A H3],[A H5],[NO SUBTIPIFICADO],[ADENOVIRUS],[ENTEROV//RHINOVIRUS],
		[METAPNEUMOVIRUS],[NO AMPLIFICO],[VSR A],
		[CORONA NL63],[CORONA 229E],[CORONA HKU1],[CORONA OC43],[CORONA SARS],
		([ETIQUETA DE MUESTRA ILEGIBLE]+[DATOS ERRONEOS]+[DIAS DE TRANSITO]+
		[MUESTRA CONTAMINADA]+[MUESTRA DERRAMADA]+[MUESTRA ENVIADA POR ERROR]+
		[MUESTRA INSUFICIENTE]+[MUESTRAS MEZCLADAS]+[NO HAY REACTIVOS]+[NO LLEGO MUESTRA]+[TUBO ROTO]+
		[TUBO VACIO]+[NO CUMPLE CON CASO]+[DIAS DE EVOLUCIÓN]+[NO USMI]) as ''RECHAZADOS'' from(
		select i.entidad,f.resultados as ''Resultado''
		from dat_generales a
		inner join dat_registro c on(a.id_principal=c.id_generales)
		inner join dat_laboratorio b on (b.id_generales=a.id_principal)
		inner join aux_muestras as d on (b.id_principal = d.id_dat_laboratorio)
		left join aux_laboratorio_res e on (d.id_dat_laboratorio=e.id_dat_laboratorio and c.id_principal=e.id_dat_registro)
		left join cat_lab_resultados f on (f.id_resultados=e.nResultado)
		inner join dbo.Unidades_todas h on (c.id_unidad=h.id_unidad)
		inner join Catalogos..entidades_inegi i on (h.id_entidad=i.id_entidad)
		where b.nEstudio ='+@param+' and f.id_resultados is not NULL and a.nNacionalidad=2
	UNION ALL
		select i.entidad,g.rechazo as ''Resultado''
		from dat_generales a
		inner join dat_registro c on(a.id_principal=c.id_generales)
		inner join dat_laboratorio b on (b.id_generales=a.id_principal)
		inner join aux_muestras as d on (b.id_principal = d.id_dat_laboratorio)
		left join aux_laboratorio_res e on (d.id_dat_laboratorio=e.id_dat_laboratorio and c.id_principal=e.id_dat_registro)
		left join cat_lab_rechazo	g on (g.id_rechazo=b.nRechazo)
		inner join dbo.Unidades_todas h on (c.id_unidad=h.id_unidad)
		inner join Catalogos..entidades_inegi i on (h.id_entidad=i.id_entidad)
		where b.nEstudio ='+@param+' and b.nRechazo is not NULL and a.nNacionalidad=2)pvt 
		PIVOT (count (entidad) for Resultado in([INF A],[NEGATIVO],[INF AH1N1 PMD],[NO ADECUADO],[B],[A H1],[A H3],[A H5],
		[NO SUBTIPIFICADO],[ADENOVIRUS],[ENTEROV//RHINOVIRUS],[METAPNEUMOVIRUS],[NO AMPLIFICO],[PARAINFLUENZA 1],[PARAINFLUENZA 2],
		[PARAINFLUENZA 3],[PARAINFLUENZA 4],[VSR A],[CORONA NL63],[CORONA 229E],[CORONA HKU1],[CORONA OC43],[CORONA SARS],
		[ETIQUETA DE MUESTRA ILEGIBLE],[DATOS ERRONEOS],[DIAS DE TRANSITO],[DUPLICADA],
		[MUESTRA CONTAMINADA],[MUESTRA DERRAMADA],[MUESTRA ENVIADA POR ERROR],[MUESTRA INADECUADA],
		[MUESTRA INSUFICIENTE],[MUESTRAS MEZCLADAS],[NO HAY REACTIVOS],[NO LLEGO MUESTRA],
		[TUBO ROTO],[TUBO VACIO],[NO CUMPLE CON CASO],[DIAS DE EVOLUCIÓN],[NO USMI])) as child'  		
   end
    
  exec(@qry)

End
GO

